home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / GameKit / Headers / gamekit / GKSoundStream.h < prev    next >
Text File  |  1995-06-12  |  1KB  |  44 lines

  1.  
  2. // This object manages multiple streams for sound output and
  3. // dynamically assigns a sound to one of the streams.
  4. //
  5. // This does not do preemption of currently playing sounds, thus
  6. // it will try to pick the best stream for the sound to play on;
  7. // if a stream is idling, it is used.  If all streams are busy,
  8. // the stream which will finish next is chosen.  When you init
  9. // the object, tell it how many streams it is to use.
  10. //
  11. // Note that a program may have multiple GKSoundStreams.  Thus,
  12. // you can have several "groupings" of streams; one group to handle
  13. // certain types of sounds, etc.  This allows you to have one stream
  14. // per sound, or several streams for an often played sound, or
  15. // one stream for a set of seldom-played sounds, or many streams for
  16. // a set of sounds that may overlap, but not necessarily.  The
  17. // SoundPlayer object uses GKSoundStreams as part of it's guts.
  18.  
  19. #import <appkit/appkit.h>
  20.  
  21. @interface GKSoundStream:Object
  22. {
  23.     id  streamList, device, timeLeftList, currentTime;
  24.     int tag; BOOL _initialized;
  25. }
  26.  
  27. // Initialization:
  28. - init;                        // same as -initStreams:1
  29. - initStreams:(int)nstr;    // preferred method
  30.  
  31. - playSoundStruct:(SNDSoundStruct *)sound;    // returns DAYTime which tells
  32.                                 // when the sound will finish --
  33.                                 // Do NOT free it; it's a private object!!!
  34.  
  35. // for cleaning up; -free calls -freeObjects.
  36. - freeObjects;
  37. - free;
  38.  
  39. // to get at the internal lists
  40. - streamList;
  41. - timeLeftList;
  42.  
  43. @end
  44.